﻿using System;
using System.Collections.Generic;
using System.Text;

namespace JYJ.AiYard.StationManagement.YardCommonHald
{

    public enum NATiveType : int
    {
        建行 = 1,
        微信,
        支付宝,
        服务端决定 = 99,
    }

    public class NATivePayModels
    {
        public NATiveType tiveType { get; set; }
        /// <summary>
        /// 来源
        /// </summary>
        public int paysource { get; set; }
        /// <summary>
        /// 原始记录编号
        /// </summary>
        public int RecordId { get; set; }
        /// <summary>
        /// 支付金额 *100后的
        /// </summary>
        public int Amount { get; set; }
        /// <summary>
        /// 商品内容
        /// </summary>
        public string goods_tag { get; set; }
        /// <summary>
        /// 支付说明
        /// </summary>
        public string Pay_subject { get; set; }
        /// <summary>
        /// 其他参数
        /// </summary>
        public string merchant_param { get; set; }
    }

    public class NATivePayRequest
    { /// <summary>
      /// 场所编号
      /// </summary>
        public long Station_Id { get; set; }
        /// <summary>
        /// 场所代码
        /// </summary>
        public string Station_No { get; set; }
        /// <summary>
        /// 场所名称
        /// </summary>
        public string Station_Name { get; set; }
        /// <summary>
        /// 客户端编号
        /// </summary>
        public long Client_Id { get; set; }
        /// <summary>
        /// 客户端代码
        /// </summary>
        public string Client_No { get; set; }
        /// <summary>
        /// 客户端名称
        /// </summary>
        public string Client_Name { get; set; }
        /// <summary>
        /// 无关支付请求参数
        /// </summary>
        public NATivePayModels nATive { get; set; }
        /// <summary>
        /// 随机串
        /// </summary>
        public string Nonce { get; set; }
        /// <summary>
        /// 签名
        /// </summary>
        public string Sign { get; set; }
    }

    public class NATivePayResponse
    {
        public string result { get; set; }
        public string message { get; set; }
        public string NATIVE_TYPE { get; set; }
        public string NATIVE_VALUE { get; set; }
    }

    public class NATivePayResponseResult
    {
        /// <summary>
        /// 返回结果 200 成功 其他失败
        /// </summary>
        public int result { get; set; }
        /// <summary>
        /// 返回信息
        /// </summary>
        public NATivePayResponse msg { get; set; }
        /// <summary>
        /// 随机串
        /// </summary>
        public string nonce { get; set; }
        /// <summary>
        /// 签名串
        /// </summary>
        public string sign { get; set; }
    }


    public enum Paysource : int
    {
        /// <summary>
        /// 停车场
        /// </summary>
        CC = 1,
        /// <summary>
        /// 加油站
        /// </summary>
        GS,
        /// <summary>
        /// 检测站
        /// </summary>
        JC,
        /// <summary>
        /// 商户购买优惠券
        /// </summary>
        BB,
        /// <summary>
        /// 车场月卡延期
        /// </summary>
        YQ,
    }
    public class CCBJHPayResponse
    {
        public string result { get; set; }
        public string message { get; set; }
        public string ORDERID { get; set; }
        public int WAITTIME { get; set; }
        public string QRCODETYPE { get; set; }
        public string TRACEID { get; set; }
        public string OUT_TRADE_NO { get; set; }
        public string CreateTime { get; set; }
    }
    public class YardPayModels
    {
        /// <summary>
        /// 来源
        /// </summary>
        public Paysource paysource { get; set; }
        /// <summary>
        /// 原始记录编号
        /// </summary>
        public int RecordId { get; set; }
        /// <summary>
        /// 支付金额 *100后的
        /// </summary>
        public int Amount { get; set; }
        /// <summary>
        /// 车牌号码
        /// </summary>
        public string AUTHNO { get; set; }
        /// <summary>
        /// 无感支付接口版本
        /// </summary>
        public string goods_tag { get; set; }
        /// <summary>
        /// 支付说明
        /// </summary>
        public string Pay_subject { get; set; }
        /// <summary>
        /// 接口版本
        /// </summary>
        public string ApiVersion { get; set; }
    }
    public class YardPayRequest
    { /// <summary>
      /// 场所编号
      /// </summary>
        public long Station_Id { get; set; }
        /// <summary>
        /// 场所代码
        /// </summary>
        public string Station_No { get; set; }
        /// <summary>
        /// 场所名称
        /// </summary>
        public string Station_Name { get; set; }
        /// <summary>
        /// 客户端编号
        /// </summary>
        public long Client_Id { get; set; }
        /// <summary>
        /// 客户端代码
        /// </summary>
        public string Client_No { get; set; }
        /// <summary>
        /// 客户端名称
        /// </summary>
        public string Client_Name { get; set; }
        /// <summary>
        /// 无关支付请求参数
        /// </summary>
        public YardPayModels yardPay { get; set; }
        /// <summary>
        /// 随机串
        /// </summary>
        public string Nonce { get; set; }
        /// <summary>
        /// 签名
        /// </summary>
        public string Sign { get; set; }
    }
    public class PaySuccessResult
    {
        public int trade_id { get; set; }
        public string trade_no { get; set; }
        public int recordid { get; set; }
        public int total_amount { get; set; }
        public string gmt_create { get; set; }
        public string out_trade_no { get; set; }
        public string trade_type { get; set; }
        public string trade_code { get; set; }
    }
    public class YardResponseResult
    {
        /// <summary>
        /// 返回结果 200 成功 其他失败
        /// </summary>
        public int result { get; set; }
        /// <summary>
        /// 返回信息
        /// </summary>
        public List<PaySuccessResult> msg { get; set; }
        /// <summary>
        /// 随机串
        /// </summary>
        public string nonce { get; set; }
        /// <summary>
        /// 签名串
        /// </summary>
        public string sign { get; set; }
    }
    public class CCBJHPayResponseResult
    {
        /// <summary>
        /// 返回结果 200 成功 其他失败
        /// </summary>
        public int result { get; set; }
        /// <summary>
        /// 返回信息
        /// </summary>
        public CCBJHPayResponse msg { get; set; }
        /// <summary>
        /// 随机串
        /// </summary>
        public string nonce { get; set; }
        /// <summary>
        /// 签名串
        /// </summary>
        public string sign { get; set; }
    }
    public class CCBJHPayRequest
    { /// <summary>
      /// 场所编号
      /// </summary>
        public long Station_Id { get; set; }
        /// <summary>
        /// 场所代码
        /// </summary>
        public string Station_No { get; set; }
        /// <summary>
        /// 场所名称
        /// </summary>
        public string Station_Name { get; set; }
        /// <summary>
        /// 客户端编号
        /// </summary>
        public long Client_Id { get; set; }
        /// <summary>
        /// 客户端代码
        /// </summary>
        public string Client_No { get; set; }
        /// <summary>
        /// 客户端名称
        /// </summary>
        public string Client_Name { get; set; }
        /// <summary>
        /// 无关支付请求参数
        /// </summary>
        public CCBJHPayModels cCBWG { get; set; }
        /// <summary>
        /// 随机串
        /// </summary>
        public string Nonce { get; set; }
        /// <summary>
        /// 签名
        /// </summary>
        public string Sign { get; set; }
    }
    public class CCBJHPayModels
    {/// 来源
     /// </summary>
        public Paysource paysource { get; set; }
        /// <summary>
        /// 原始记录编号
        /// </summary>
        public int RecordId { get; set; }
        /// <summary>
        /// 支付金额 *100后的
        /// </summary>
        public int Amount { get; set; }
        /// <summary>
        /// 支付说明
        /// </summary>
        public string Pay_subject { get; set; }
        /// <summary>
        /// 订单创建时间
        /// </summary>
        public string gmt_create { get; set; }
        public string ORDERID { get; set; }
        public int QRYTIME { get; set; }
        public int QRCODETYPE { get; set; }
        public string TRACEID { get; set; }
    }

}
